home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / esc / SchemaDocMaker.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  5.8 KB  |  137 lines

  1. package com.extensibility.esc;
  2.  
  3. import com.extensibility.app.BaseApplication;
  4. import com.extensibility.app.UI;
  5. import com.extensibility.rock.GifEncoder;
  6. import com.extensibility.rock.ImageEncoder;
  7. import com.extensibility.rock.diagram.Diagram;
  8. import com.extensibility.xa.DiagramPrintContext;
  9. import com.extensibility.xa.ElementDiagram;
  10. import com.extensibility.xa.ElementDiagramModel;
  11. import com.extensibility.xa.SchemaDoc;
  12. import com.extensibility.xml.BaseDeclaration;
  13. import com.extensibility.xml.BaseFlavor;
  14. import com.extensibility.xml.DTDMLWriter;
  15. import com.extensibility.xml.ElementDeclaration;
  16. import com.extensibility.xml.FlavorRegistry;
  17. import com.extensibility.xml.Schema;
  18. import com.extensibility.xml.SchemaUtilities;
  19. import com.extensibility.xml.URI;
  20. import com.extensibility.xsl.XSLWraper;
  21. import java.awt.Dimension;
  22. import java.io.File;
  23. import java.io.FileOutputStream;
  24. import java.io.FileReader;
  25. import java.io.FileWriter;
  26. import java.io.IOException;
  27. import java.io.OutputStreamWriter;
  28. import java.io.Reader;
  29. import java.io.StringReader;
  30. import java.io.StringWriter;
  31. import java.util.Enumeration;
  32. import javax.swing.JComponent;
  33.  
  34. public class SchemaDocMaker {
  35.    File schemaFile;
  36.    URI uri;
  37.  
  38.    public SchemaDocMaker(File var1) {
  39.       this.schemaFile = var1;
  40.       this.uri = new URI(this.schemaFile);
  41.       BaseFlavor.loadDisplayNames();
  42.    }
  43.  
  44.    public void createDoc(String var1) {
  45.       try {
  46.          File var2 = new File(var1);
  47.          String var3 = SchemaUtilities.getFlavor(this.uri, true);
  48.          var3 = FlavorRegistry.getDefaultRegistry().getNamedBaseFlavor(var3);
  49.          FileWriter var4 = new FileWriter(var2);
  50.          Object var5 = null;
  51.          FileReader var6 = null;
  52.          if (var3.equalsIgnoreCase("dtd")) {
  53.             String var7 = "http://schema";
  54.             Schema var8 = new Schema(new URI(var7), SchemaUtilities.getFlavor(this.uri, true));
  55.             var8.parse(this.uri, new URI(var7), var8.getCount(), new Boolean(false));
  56.             StringWriter var9 = new StringWriter();
  57.             var9.flush();
  58.             (new DTDMLWriter(var8)).writeDocument(var9);
  59.             var5 = new StringReader(var9.toString());
  60.             BaseApplication.getApplication();
  61.             var6 = new FileReader(String.valueOf(String.valueOf(BaseApplication.getHomePath()).concat(String.valueOf(File.separator))).concat(String.valueOf("esdDML.xsl")));
  62.          } else if (!var3.equalsIgnoreCase("xdr") && !var3.equalsIgnoreCase("biz")) {
  63.             if (var3.equalsIgnoreCase("xsd")) {
  64.                var5 = new FileReader(this.schemaFile);
  65.                BaseApplication.getApplication();
  66.                var6 = new FileReader(String.valueOf(String.valueOf(BaseApplication.getHomePath()).concat(String.valueOf(File.separator))).concat(String.valueOf("esdXSD.xsl")));
  67.             } else if (var3.equalsIgnoreCase("sox")) {
  68.                var5 = new FileReader(this.schemaFile);
  69.                BaseApplication.getApplication();
  70.                var6 = new FileReader(String.valueOf(String.valueOf(BaseApplication.getHomePath()).concat(String.valueOf(File.separator))).concat(String.valueOf("esdSOX.xsl")));
  71.             }
  72.          } else {
  73.             var5 = new FileReader(this.schemaFile);
  74.             BaseApplication.getApplication();
  75.             var6 = new FileReader(String.valueOf(String.valueOf(BaseApplication.getHomePath()).concat(String.valueOf(File.separator))).concat(String.valueOf("esdXDR.xsl")));
  76.          }
  77.  
  78.          XSLWraper var12 = new XSLWraper();
  79.          var12.XSLTDocument((Reader)var5, var6, var4);
  80.          ((OutputStreamWriter)var4).flush();
  81.          ((OutputStreamWriter)var4).close();
  82.          this.createImages();
  83.       } catch (IOException var10) {
  84.          System.out.println(String.valueOf("exception in genrating schemadoc").concat(String.valueOf(((Throwable)var10).toString())));
  85.       }
  86.  
  87.    }
  88.  
  89.    public boolean createImages() {
  90.       try {
  91.          String var13 = SchemaUtilities.getFlavor(this.uri, true);
  92.          Schema var1 = new Schema(this.uri, var13);
  93.          var1.parse(this.uri, this.uri, var1.getCount(), new Boolean(false));
  94.          String var3 = this.schemaFile.getAbsolutePath();
  95.          SchemaDoc var4 = new SchemaDoc(var1);
  96.          ElementDiagram var5 = new ElementDiagram(new ElementDiagramModel(var4));
  97.          ((JComponent)var5).setMinimumSize(new Dimension(Integer.MAX_VALUE, Integer.MIN_VALUE));
  98.          Enumeration var6 = var4.getElementDeclarations();
  99.          File var7 = new File(String.valueOf(var3.substring(0, var3.lastIndexOf(File.separator) + 1)).concat(String.valueOf("sdimages")));
  100.          if (!var7.exists()) {
  101.             var7.mkdir();
  102.          }
  103.  
  104.          while(var6 != null && var6.hasMoreElements()) {
  105.             ElementDeclaration var8 = (ElementDeclaration)var6.nextElement();
  106.             ((Diagram)var5).getModel().setRoot(var8);
  107.             ((Diagram)var5).getDataModel().expandNode(((Diagram)var5).getDataModel().getRoot(), false);
  108.             ((Diagram)var5).render(((Diagram)var5).getZoom() - 2);
  109.             String var9 = this.schemaFile.getName();
  110.             var9 = var9.substring(0, var9.lastIndexOf("."));
  111.             String var10 = String.valueOf(String.valueOf(String.valueOf(String.valueOf(String.valueOf(var7.getAbsolutePath()).concat(String.valueOf(File.separator))).concat(String.valueOf(var9))).concat(String.valueOf("SDI"))).concat(String.valueOf(((BaseDeclaration)var8).getName()))).concat(String.valueOf(".gif"));
  112.             File var11 = new File(String.valueOf(String.valueOf(String.valueOf(var7.getAbsolutePath()).concat(String.valueOf(File.separator))).concat(String.valueOf(((BaseDeclaration)var8).getName()))).concat(String.valueOf(".gif")));
  113.             exportDiagramAsImage(var11, var5);
  114.          }
  115.  
  116.          return true;
  117.       } catch (IOException var12) {
  118.          boolean var2 = false;
  119.          return var2;
  120.       }
  121.    }
  122.  
  123.    public static void exportDiagramAsImage(File var0, Diagram var1) throws IOException {
  124.       DiagramPrintContext var2 = new DiagramPrintContext((ElementDiagram)var1);
  125.       FileOutputStream var3 = new FileOutputStream(var0);
  126.       if (var0.getName().endsWith(".gif")) {
  127.          GifEncoder var4 = new GifEncoder(var2.getImage(), var3);
  128.          int var5 = UI.getColor(3).getRGB();
  129.          ((ImageEncoder)var4).setColorMangler(new ImageEncoder.BackgroundColorMangler(var5));
  130.          ((ImageEncoder)var4).encode();
  131.       }
  132.  
  133.       var3.close();
  134.       var2.dispose();
  135.    }
  136. }
  137.